package copy;

import java.io.*;

public class dmeo1 {
    public static void main(String[] args) throws IOException {
        //创建要拷贝的源头文件
        File src = new File("E:\\jk");
        //创建要拷贝的目标文件
        File dest = new File("E:\\aaa");

        //调用拷贝方法

        copy(src, dest);
    }

    private static void copy(File src, File dest) throws IOException {
        //每一次创建文件夹的时候 都是从dest里面创建和src同名的文件夹
        dest.mkdirs();
        //进入src文件夹里面
        File[] files = src.listFiles();
        //循环遍历数组得到每一个文件或者文件夹
        for (File file : files) {
            //判断file是文件还是文件夹
            if (file.isFile()) {
                //如果是文件 ,就把src里的文件拷贝到目的地dest下
                //细节：创建和src里面文件相同的文件名称
                File dir = new File(dest, file.getName());
                //创建字节流开始读取src下的文件，并且写入到dest下
                FileInputStream fis = new FileInputStream(src);
                FileOutputStream fos = new FileOutputStream(dir);
                byte[] bytes = new byte[1024];
                int len;
                while ((len = fis.read(bytes)) != -1) {
                    fos.write(bytes, 0, len);
                }
                fos.close();
                fis.close();
            } else {
                //如果是文件夹，就递归
                copy(file, new File(dest, file.getName()));
            }
        }
    }
}
